package features.advance.leetcode.string.easy;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 *
 *  面试题 01.06. 字符串压缩
 *
 *  难度：简单
 *
 * 字符串压缩。利用字符重复出现的次数，编写一种方法，实现基本的字符串压缩功能。
 * 比如，字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短，
 * 则返回原先的字符串。你可以假设字符串中只包含大小写英文字母（a至z）。
 *
 * 示例1:
 *
 *  输入："aabcccccaaa"
 *  输出："a2b1c5a3"
 * 示例2:
 *
 *  输入："abbccd"
 *  输出："abbccd"
 *  解释："abbccd"压缩后为"a1b2c2d1"，比原字符串长度更长。
 * 提示：
 *
 * 字符串长度在[0, 50000]范围内。
 *
 *
 * @author LIN
 * @date 2021-09-16
 */
public class Interview01_06 {
    static Logger  log = LoggerFactory.getLogger(Interview01_06.class);


    public static void main(String[] args) {
        Solution solution = new Solution() {
        };
        String S = "aabccccaaaa";
        String res = solution.compressString(S);
        System.out.println(res);

        int a = 1;
        int b = 2;
        a = a+b;
        //3
        b = a - b;
        // 1
        a = a- b;
        // 2
        // 异或
        System.out.println("a="+a);
        System.out.println("b="+b);
        long start = System.currentTimeMillis();
        solution.recursion(20000-8690-10);
        log.debug("递归时间：{}",System.currentTimeMillis() - start);
        start = System.currentTimeMillis();
        for (int i = 0; i < 11270; i++) {
            log.debug("当前次数：{}",i);
        }
        log.debug("迭代时间：{}",System.currentTimeMillis()-start);


        log.debug("ceil:{}",Math.ceil(1.5));

    }

    static class Solution {
        Logger log = LoggerFactory.getLogger(this.getClass());

        public String compressString(String S) {
            String str = new String("a");
            String intern = str.intern();
            System.out.println(intern == str);
            System.out.println(intern.equals(str));
            return null;
        }

        /**
         * 测试虚拟机栈允许的最大递归深度
         * @param t
         */
        public void recursion(int t){
            if(t < 0){
                return;
            }
            log.debug("当前深度：{}",t);
            recursion(--t);
        }
    }
}
